home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Delphi Programmer's Power Pack
/
Delphi Volume 1.iso
/
s_to_z
/
wmapdemo
/
data.z
/
MAPMAIN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-03-17
|
21KB
|
691 lines
unit Mapmain;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, WorldMap, StdCtrls, Buttons, ExtCtrls, DB, DBTables,
Menus,mapabout,Printers,adjgrid,viewer,setbmp;
type
mydata = record
anInt : integer;
aString : string;
end;
Pmydata = ^mydata;
TMapForm = class(TForm)
Mapanel: TPanel;
Label1: TLabel;
Label3: TLabel;
labels: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
points: TSpeedButton;
curlat: TEdit;
Curlong: TEdit;
LinesButton1: TSpeedButton;
SpeedButton1: TSpeedButton;
StateBtn: TSpeedButton;
LakeBtn: TSpeedButton;
RiversBtn: TSpeedButton;
Edit1: TEdit;
ZoomInBtn: TSpeedButton;
ZoomOutBtn: TSpeedButton;
MainMenu1: TMainMenu;
Zoom1: TMenuItem;
SetCoordinates1: TMenuItem;
DrawLine1: TMenuItem;
Full1: TMenuItem;
SetZoom1: TMenuItem;
N2: TMenuItem;
Print1: TMenuItem;
Point1: TMenuItem;
ShowPoints1: TMenuItem;
SHowLabels1: TMenuItem;
FindPoint1: TMenuItem;
AdjustGrid1: TMenuItem;
CenterMapAtCursor1: TMenuItem;
scale: TEdit;
Label2: TLabel;
ChangeMapDataFile1: TMenuItem;
OpenDialog1: TOpenDialog;
Lines1: TMenuItem;
PlotLine1: TMenuItem;
ClearLines1: TMenuItem;
WorldMap1: TWorldMap;
ClearPoints1: TMenuItem;
NatCapsQry: TQuery;
PlotNationalCapitals1: TMenuItem;
ClickQry: TQuery;
PrintFullPageMap1: TMenuItem;
CreateMapBMP1: TMenuItem;
ShowLines1: TMenuItem;
SaveDialog1: TSaveDialog;
ShowRedPoints: TMenuItem;
ShowYellowPoints1: TMenuItem;
ShowBluePoints1: TMenuItem;
ShowAllPoints1: TMenuItem;
procedure Full1Click(Sender: TObject);
procedure ShowPoints1Click(Sender: TObject);
procedure SHowLabels1Click(Sender: TObject);
procedure SetZoom1Click(Sender: TObject);
procedure SetCoordinates1Click(Sender: TObject);
procedure WorldMap1PointChange(Sender: TObject);
procedure WorldMap1PointClicked(Sender: TObject;
Curpoint: TPointObject; AIndex: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DrawLine1Click(Sender: TObject);
procedure LinesButton1Click(Sender: TObject);
procedure FindPoint1Click(Sender: TObject);
procedure Contents1Click(Sender: TObject);
procedure TopicSearch1Click(Sender: TObject);
procedure Print1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure StateBtnClick(Sender: TObject);
procedure LakeBtnClick(Sender: TObject);
procedure RiversBtnClick(Sender: TObject);
procedure TurnOnFeature51Click(Sender: TObject);
procedure TurnOffFeature51Click(Sender: TObject);
procedure TurnOnFeature61Click(Sender: TObject);
procedure TurnOffFeature61Click(Sender: TObject);
procedure ZoomInBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure WorldMap1MapMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer; Lat, Long: Longint);
procedure ZoomOutBtnClick(Sender: TObject);
procedure AdjustGrid1Click(Sender: TObject);
procedure CenterMapAtCursor1Click(Sender: TObject);
procedure WorldMap1Zoom(Sender: TObject);
procedure ChangeMapDataFile1Click(Sender: TObject);
procedure PlotLine1Click(Sender: TObject);
procedure WorldMap1MapMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer; Lat, Long: Longint);
procedure WorldMap1MapMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer; Lat, Long: Longint);
procedure ClearLines1Click(Sender: TObject);
procedure ClearPoints1Click(Sender: TObject);
procedure PlotNationalCapitals1Click(Sender: TObject);
procedure PrintFullPageMap1Click(Sender: TObject);
procedure CreateMapBMP1Click(Sender: TObject);
procedure ShowRedPointsClick(Sender: TObject);
function WorldMap1PointFilter(Sender: TObject;
Curpoint: TPointObject): Boolean;
procedure ShowYellowPoints1Click(Sender: TObject);
procedure ShowBluePoints1Click(Sender: TObject);
procedure ShowAllPoints1Click(Sender: TObject);
private
{ Private declarations }
Filtercolor : integer;
public
FZoomfactor : integer;
FZooming : boolean;
FPanning : boolean;
FSPt : Tpoint;
FEPt : Tpoint;
FbDrawingLine : boolean;
FbDrawingEnabled : boolean;
procedure DrawLine(X,Y : integer; IsFinal : boolean);
{ Public declarations }
end;
const crHand = 6;
const crPencil = 7;
var
MapForm: TMapForm;
implementation
uses pdialog,Ldialog,Findpt,main;
{$R *.DFM}
{$R Worldmap.dcr}
{$R Cursor.res}
procedure TMapForm.Full1Click(Sender: TObject);
begin
Worldmap1.fullscreen;
end;
procedure TMapForm.ShowPoints1Click(Sender: TObject);
begin
if plotNationalCapitals1.enabled then begin
plotNationalCapitals1Click(Sender);
end else if Worldmap1.showpoints then begin
Worldmap1.ShowPoints := false;
Showpoints1.checked := false;
end else begin
Worldmap1.ShowPoints := true;
Showpoints1.checked := true;
end;
end;
procedure TMapForm.SHowLabels1Click(Sender: TObject);
begin
if Worldmap1.showpointlabels then begin
Worldmap1.showpointlabels := false;
ShowLabels1.checked := false;
end else begin
Worldmap1.showpointlabels := true;
ShowLabels1.checked := true;
end;
end;
procedure TMapForm.SetZoom1Click(Sender: TObject);
begin
Worldmap1.EnableZoom:= true;
end;
procedure TMapForm.SetCoordinates1Click(Sender: TObject);
begin
PointDlg := TPointDLg.Create(Application);
PointDlg.ShowModal;
end;
procedure TMapForm.WorldMap1PointChange(Sender: TObject);
begin
Curlat.text := Worldmap1.CurrentLatitudeStr;
Curlong.text := Worldmap1.CurrentLongitudestr;
end;
procedure TMapForm.WorldMap1PointClicked(Sender: TObject;
Curpoint: TPointObject; AIndex: Integer);
var
workstr : string;
i : integer;
cwd : string;
begin
screen.cursor := crHourglass;
GetDir(0,cwd);
workstr:= 'Current Point ID is '+inttostr(Curpoint.tag)+#13;
Workstr:= workstr+Curpoint.labels.strings[0]+#13;
try
With Clickqry do begin
databasename := cwd;
params[0].AsInteger := Curpoint.tag;
prepare;
open;
Workstr := workstr+Fieldbyname('prov_name').Asstring+#13;
WorkStr := workstr+Fieldbyname('country_name').Asstring;
end;
screen.cursor := crDefault;
messagedlg(workstr,mtInformation,[mbOk],0);
finally
Clickqry.close;
ClickQry.database.close;
Screen.cursor := crDefault
end;
{ worldmap1.HighlightPoint(Aindex); {Still testing this one}
end;
procedure TMapForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TMapForm.DrawLine1Click(Sender: TObject);
begin
Worldmap1.hint := 'Click the left button where the lines will start, hold and drag the cursor to draw the line.';
Worldmap1.cursor := crPencil;
Worldmap1.EnablePointClick := false;
FbDrawingEnabled := true;
end;
procedure TMapForm.LinesButton1Click(Sender: TObject);
begin
if Worldmap1.Showlines then begin
WorldMap1.showlines := false;
ShowLines1.checked := false;
end else begin
WorldMap1.showlines := true;
ShowLines1.checked := true;
end;
end;
procedure TMapForm.FindPoint1Click(Sender: TObject);
begin
FindDlg := TFinddlg.Create(Application);
Finddlg.Showmodal;
end;
procedure TMapForm.Contents1Click(Sender: TObject);
begin
Application.helpjump('IDH_CONTENTS');
end;
procedure TMapForm.TopicSearch1Click(Sender: TObject);
const
EmptyString: PChar = '';
begin
Application.HelpCommand(HELP_PARTIALKEY, Longint(EmptyString));
end;
procedure TMapForm.Print1Click(Sender: TObject);
var
xRect: TRect;
twidth : word;
offset : word;
begin
{ Worldmap1.printtofile := fal